Network devices are used to transfer data between nodes in a network. As the networks grow and the data rates of communication channels increase, the need to increase the amount of data a network device can handle within a period of time arises. To meet the demands of these networks, devices need memory systems designed to read data into and write data out of memory to accommodate the demands of the network and to minimize any collisions between read requests and write requests. Current systems meet the high capacity and high data rate demands of networks by increasing the number of access ports of a memory and/or increasing the clock speed of the memory, which requires state of the art semiconductor technologies. However, increasing the number of access ports on the memory and using state of the art semiconductor technologies to increase the operating frequency of memory significantly adds to the cost of the memory and to the power budget required to operate these memories.